﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

    public partial class VotacaoDiaTrabalhador : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

            }
        }

        protected void Votar_Click(object sender, EventArgs e)
        {
            try
            {
                //Verificando se existe alguma opção selecionada
                if (this.rbVotar.SelectedIndex == -1)
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('Por Favor, selecione alguma opção.');", true);
                else
                {
                    //Dao.Instance.InserirVoto("14152", this.rbVotar.SelectedValue.ToString());
                    Dao.Instance.InserirVoto(Session["Chapa"].ToString(), this.rbVotar.SelectedValue.ToString());

                    ScriptManager.RegisterStartupScript(this, typeof(Page), "redirect", "alert('Seu voto foi computado com sucesso!'); window.location='Entrada.aspx';", true);

                    ////Aviso de sucesso!
                    //ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('Seu voto foi computado com sucesso!');", true);

                    ////Encaminhando para a página inicial da intranet
                    //Response.Redirect("Entrada.aspx");
                }
            }
            catch
            {
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('Atenção! Entre em contato com o suporte! Houve um erro na inserção do voto.');", true);   
            }
        }
    }

    public class Dao
    {
        #region Singleton
        private static Dao instance;

        private Dao() { }

        public static Dao Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new Dao();
                }
                return instance;
            }
        }
        #endregion

        /// <summary>
        /// Responsável por retornar a string de conexão com o banco
        /// </summary>
        private string strConn
        {
            get { return @"Data Source=sql;Initial Catalog=Intranet;Persist Security Info=True;User ID=sa;Password=local;Connection Timeout=60"; }
        }

        public void InserirVoto(string chapa, string opcao)
        {
            try
            {
                //Montando consulta para ser executada no banco de dados
                SqlCommand command = new SqlCommand("INSERT INTO VotacaoDiaTrabalhador VALUES (@chapa, @voto, getdate())");
                command.Parameters.Add(new SqlParameter("chapa", chapa));
                command.Parameters.Add(new SqlParameter("voto", opcao));

                executarQuery(command);
            }
            catch { throw; }
        }

        private DataTable executarQuery(SqlCommand command)
        {
            DataTable dt = new DataTable();
            SqlConnection conn = new SqlConnection(strConn);

            try
            {
                command.Connection = conn;
                SqlDataAdapter adapter = new SqlDataAdapter(command);
                adapter.Fill(dt);
            }
            catch { throw; }
            finally { conn.Close(); }

            return dt;
        }
    }
